home *** CD-ROM | disk | FTP | other *** search
Text File | 2007-04-11 | 45.4 KB | 1,166 lines |
- /****i* SOURCE_FILE/INFO
- *
- * NAME
- * Updater.js
- *
- * USAGE
- * Part of WPS JavaScript Library.
- *
- * COPYRIGHT
- * Copyright ⌐ 2000-2001 Website Pros, Inc.
- * All Rights Reserved.
- *
- * This is an unpublished work protected by Website Pros, Inc.
- * as a trade secret, and is not to be used or disclosed except as
- * expressly provided in a written license agreement executed by
- * you and Website Pros, Inc.
- *
- * <copyright@websitepros.com>
- *
- * NOTES
- * JavaScript code.
- *
- *****/
- if (!IS.isModuleInitialized("IS.NOF.UPDATE.Updater"))
- {
- /****h* NOF_JavaScript_Library/NOF.UPDATE.Updater
- *
- * NAME
- * NOF.UPDATE.Updater
- *
- * DESCRIPTION
- *
- * The <code>Updater</code> class.
- * External dependencies:
- * NOF.App, NOF.UTIL.ResourceBundle, NOF.NET.Http, NOF.NET.HttpRequest, NOF.XML.XmlDocument, NOF.DIALOGS.Messages,
- * NOF.DIALOGS.BrowserDlg, NOF.DIALOGS.ProgressDlg, NOF.DIALOGS.FileDlg, NOF.NOFSettings, NOF.Session
- ****/
-
- /**
- *
- */
- function NOF_Update( ) {
- this.__proto__ = NOF_Update.prototype;
-
- this.CLASS_NAME = "Update";
-
- this.app = NOF.App.getFSIApp();
- this.app2 = NOF.App.getFSIApp2();
-
- this.updatesChecked = false;
-
- this.releases = null;
-
- this.releasesString = [];
-
- this.regEditObj = new NOF.NOFSettings();
- var regVers = this.regEditObj.get( "Version", NOF.NOFSettings.STRING_VALUE );
- //do the versionInfo thing
- regVers = regVers.split(".");
- this.versionInfo = this.regEditObj.get( "VersionInfo", NOF.NOFSettings.STRING_VALUE );
- this.currentVersion = ""+regVers[0]+"."+regVers[1]+"."+this.versionInfo+"."+regVers[3];
-
- this.stayClosed = false;
-
- }
-
-
- function NOF_Update_ProtoBuilder() {
-
- var method = NOF_Update.prototype;
-
- method.RELEASE_NOTES_FILENAME = "ReleaseNotes.html";
- method.RELEASE_WINDOW_WIDTH = 650;
- method.RELEASE_WINDOW_HEIGHT = 500;
-
- method.UPDATER_TXT_PARAM = 'updater.txt';
- method.START_VERSION = "10.00";
- method.END_VERSION = "11.00";
- method.AUTO_UPDATE_URL = "http://www.netobjects.com/dev/Fusion/Releases/Fusion10.xml";
-
- method.checkUpdate = checkUpdate;
-
- method.Release = Release;
- method.getLatestReleaseIndex = getLatestReleaseIndex;
- method.getReleaseIndex = getReleaseIndex;
- method.getNeededReleases = getNeededReleases;
-
- method.getLatestRelease = getLatestRelease;
- method.getRelease = getRelease;
- method.showReleaseNotes = showReleaseNotes;
- method.showPreviousReleaseNotes= showPreviousReleaseNotes;
- method.getNumberOfReleases = getNumberOfReleases;
- method.downloadRelease = downloadRelease;
- method.isDuplicateVersion = isDuplicateVersion;
-
- method.isUpdateNeeded = isUpdateNeeded;
- method.shouldCheckForUpdates = shouldCheckForUpdates;
-
- method.setLastUpdateDate = setLastUpdateDate;
- method.getLastUpdateDate = getLastUpdateDate;
-
- method.setLastCheckDate = setLastCheckDate;
- method.getLastCheckDate = getLastCheckDate;
-
- method.iterateReleases = iterateReleases;
- method.autoUpdate = autoUpdate;
- method.getAvailableUpdatesType = getAvailableUpdatesType;
-
- /**
- * internal class Release
- */
- function Release( version, versionInfo, build, releaseDate, summaryNotes, releaseNotesURL, releaseNotes, distributions, mediaCD ) {
-
- //NOF.util_logging_ConsoleLogger_global.info("Release.constructor");
- this.version = version;
- this.versionInfo = versionInfo;
- this.build = build;
- this.releaseDate = releaseDate;
- this.summaryNotes = summaryNotes;
- this.releaseNotesURL= releaseNotesURL;
- this.releaseNotes = releaseNotes;
-
- this.distributions = distributions;
- this.mediaCD = mediaCD;
- }
-
- /**
- * Distribution - internal class used by Release
- **/
- function Distribution( installType, downloadSize, requires, regEntries, mirrors) {
- this.installType = installType;
- this.downloadSize= downloadSize;
- this.requires = requires;
- this.regEntries = regEntries;
- this.mirrors = mirrors; // mirrors[i].name, mirrors[i].url
- }
-
- Release.prototype.Distribution = Distribution;
-
- /**
- * RegEntry - internal class used by Distribution
- **/
- function RegEntry( base, regName, regValue, regType) {
- this.base = base;
- this.regName = regName;
- this.regValue = regValue;
- this.regType = regType;
- }
-
- Distribution.prototype.RegEntry = RegEntry;
-
- Distribution.prototype.toString = function Distribution_toString() {
- var str = this.installType + ", "+this.downloadSize + ", requires=" + this.requires + "\n";
- for (var i=0; i < this.regEntries.length; i++) {
- str += this.regEntries[i].toString() + "\n";
- }
- for (var i=0; i < this.mirrors.length; i++) {
- str += this.mirrors[i].name +" : "+ this.mirrors[i].url + "\n";
- }
- return str;
- }
-
- Release.prototype.toString = function Release_toString() {
- var str = this.version +"."+ this.versionInfo +"."+ this.build + "\n"+
- this.releaseDate + "\n"+
- this.summaryNotes + "\n";
- //str += "releaseNotes = \n"+this.releaseNotes + "\n";
-
- for (var i=0; i < this.distributions.length; i++) {
- str += this.distributions[i].toString()+"\n";
- }
- return str;
- }
-
- Release.prototype.hasFullUpdateDistribution = function Release_hasFullUpdateDistribution() {
- for (var i=0; i < this.distributions.length; i++) {
- if (this.distributions[i].installType == "full")
- return true;
- }
- return false;
- }
-
- RegEntry.prototype.toString = function RegEntry_toString() {
- return (this.base +"/"+ this.regName +"="+ this.regValue);
- }
-
- /**
- * getLatestRelease
- **/
- function getLatestRelease() {
- var lri = this.getLatestReleaseIndex();
- return lri >= 0 ? this.releases[lri] : null;
- }
-
- /**
- * getLatestReleaseIndex
- **/
- function getLatestReleaseIndex() {
- if (!this.updatesChecked) {
- this.checkUpdate();
- }
-
- var latestVersion = this.currentVersion;
- var versionI;
- var maxReleaseIndex = -1;
- for (var i=0; i < this.releases.length; i++) {
-
- versionI = this.releases[i].version+"."+this.releases[i].versionInfo+"."+this.releases[i].build;
- if( latestVersion <= versionI ) {
- maxReleaseIndex = i;
- latestVersion = versionI;
- }
- }
- return maxReleaseIndex;
- }
-
- /**
- * getReleaseIndex
- **/
- function getReleaseIndex(version, versionInfo, build) {
- if (!this.updatesChecked) {
- this.checkUpdate();
- }
-
- var req = null;
- if ( arguments.length == 1 ) {
- req = arguments[0];
- } else if ( arguments.length == 3 ) {
- req = version+"."+versionInfo+"."+build;
- }
-
- for (var i=0; i < this.releases.length; i++) {
- if ( (this.releases[i] != null) && (req == this.releases[i].version+"."+this.releases[i].versionInfo+"."+this.releases[i].build) ) {
- return i; //this.releases[i];
- }
- }
- return -1;
- }
-
- /**
- * getRelease
- **/
- function getRelease(version, versionInfo, build) {
- if (arguments.length == 1) {
- if ( (arguments[0] - 0 > -1) || (arguments[0] - 0 < this.releases.length) ) {
- return this.releases[arguments[0]];
- } else {
- return null;
- }
- } else {
- var ri = this.getReleaseIndex(version, versionInfo, build);
- if ( ri > -1 && ri < this.releases.length ) {
- return this.releases[ri];
- } else {
- return null;
- }
- }
- }
-
- /**
- * Determine if the current status and settings of the application
- * indicates that a check for updates should be made.
- * @param whenUpdate - NOF.UPDATE.UpdateOptions.CHECK_ON_LOAD or CHECK_ON_CONNECT
- * @return true if auto-update was set and
- * the difference between current date and last check for update date exceeds the interval set and
- * the whenUpdate argument matches the setting chosen (i.e. NOF.UPDATE.UpdateOptions.CHECK_ON_LOAD matches with Fusion launch)
- **/
- function shouldCheckForUpdates(/*int*/ whenUpdate) {
- var log = NOF.UTIL.LOGGING.getLogger("InitFusion");
-
- try {
-
- //var cu = this.regEditObj.get('Settings\\CheckUpdate', NOF.NOFSettings.INT_VALUE, true);
- var isAutoUpdate = NOF.UPDATE.UpdateOptions.isSetAutoUpdate();
-
- //var uf = this.regEditObj.get('Settings\\UpdateFrequency', NOF.NOFSettings.INT_VALUE, true);
-
- var uf = NOF.UPDATE.UpdateOptions.getUpdateFrequency();
- //var um = this.regEditObj.get('Settings\\UpdateMethod', NOF.NOFSettings.INT_VALUE, true);
-
- //log.info("Update:isUpdateNeeded CheckUpdate="+cu+"\n UpdateFrequency="+uf+"\n UpdateMethod="+um + " \n whenUpdate=" + whenUpdate + " = " + NOF.UPDATE.UpdateOptions.CHECK_ON_LOAD);
- log.info("Update:isUpdateNeeded CheckUpdate="+isAutoUpdate+"\n UpdateFrequency="+uf+ " \n whenUpdate=" + NOF.UPDATE.UpdateOptions.getEventToCheckForUpdates() + " = " + NOF.UPDATE.UpdateOptions.CHECK_ON_LOAD);
- //if (cu == 1) { // Manual update
- if (isAutoUpdate == false) {
- return false;
- }
- var now = new Date();
- var ms = now.getTime();
- var lastChecked = this.getLastCheckDate(); //NOF.App.getFSIApp2().DataLastChecked;
- var hoursDiff = Math.round(( ms/1000 - lastChecked/1000 )/(60*60));
- //var hoursDiff = Math.round(( ms/1000 - lastChecked )/(60*60));
-
- switch (uf) {
- case 0: { // Weekly
- if (hoursDiff > 24*7)
- return true;
- break;
- }
- case 1: { // Daily
- if (hoursDiff > 24)
- return true;
- break;
- }
- case 2: { // Monthly
- if (hoursDiff > 24*30)
- return true;
- break;
- }
- }
- return false;
- } catch(edate) {
- log.error("NOF.UPDATE.Updater.shouldCheckForUpdate "+edate.message );
- }
-
- }
-
-
- /**
- * @param Date object
- **/
- function setLastUpdateDate(/*Date*/ updateDate) {
- try {
- this.regEditObj.put("DateLastUpdate", Math.round( updateDate.getTime()/1000 ) );
- } catch (edate) {
- //log.error(this.CLASS_NAME+".setLastUpdateDate "+edate );
- }
- }
-
- /**
- * @return Date object
- **/
- function getLastUpdateDate() {
- var d = NOF.App.getFSIApp2().DateLastUpdate;
- if (d) {
- d = new Date(d * 1000);
- }
- return d;
- }
-
- /**
- *
- **/
- function setLastCheckDate(/*Date*/ updateDate) {
- try {
- this.regEditObj.put("DataLastChecked", Math.round( updateDate.getTime()/1000 ) );
- } catch (edate) {
- //log.error(this.CLASS_NAME+".setLastCheckDate "+edate );
- }
- }
- /**
- *
- **/
- function getLastCheckDate() {
- var d = NOF.App.getFSIApp2().DataLastChecked;
- if (d) {
- d = new Date(d * 1000);
- }
- return d;
- }
-
- /**
- * isUpdateNeeded
- **/
- function isUpdateNeeded( ) {
-
- //try {
- // this.regEditObj.put("DataLastChecked", Math.round( (new Date()).getTime()/1000) );
- //} catch (edate){
-
- //}
- this.setLastCheckDate(new Date());
-
- if ( this.updatesChecked == false ) {
- if (this.checkUpdate() == -1)
- return false;
- }
- var latestRelease = this.getLatestRelease();
- if (latestRelease == null)
- return false;
- return this.currentVersion < (latestRelease.version +"."+ latestRelease.versionInfo +"."+ latestRelease.build);
- }
-
- /**
- * iterateReleases
- */
- function iterateReleases(n, sum, path, tabs) {
- var METHOD_NAME = "iterateReleases";
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " init.");
-
- var tstr = "";
- for(var i=0;i<tabs;i++)
- tstr += "\t";
-
- if (n == null) {
- this.releasesString[path + "|" + this.currentVersion] = sum;
- return;
- }
- if ( n.version+"."+n.versionInfo+"."+n.build == this.currentVersion ) {
- this.releasesString[path+"|"+ n.version+"."+n.versionInfo+"."+n.build ] = sum;
- return;
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ tstr + n.version+"."+n.versionInfo+"."+n.build + "\r\n");
-
- for (var i=0; i < n.distributions.length; i++) {
-
- this.releasesString[path+"|"+ n.version+"."+n.versionInfo+"."+n.build +":" + i] = sum + n.distributions[i].downloadSize;
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ tstr + "sum="+ (sum + n.distributions[i].downloadSize) +"\r\n");
-
- this.iterateReleases( ( (n.distributions[i].requires != null ) ? this.getRelease(this.getReleaseIndex(n.distributions[i].requires)) : null), sum + n.distributions[i].downloadSize, path + "|"+ n.version+"."+n.versionInfo+"."+n.build +":"+i, tabs+1);
- }
- }
-
- /**
- * autoUpdate
- **/
- function autoUpdate( iterRelease, chosedMirror, propertiesObj ) {
- var METHOD_NAME = "autoUpdate";
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " init");
- var infoArr = this.getNeededReleases( iterRelease, chosedMirror );
- if (infoArr.length == 0) {
- return -1;
- }
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " infoArr:\r\n" + infoArr.join("\n") );
- var doRestart = false;
-
- var progDlg = new NOF.DIALOGS.ProgressDlg();
-
- var count = 0;
- var containsFullUpdate = false;
-
- for (var j=0; j < infoArr.length; j++) {
-
- //if ( this.app.SetProgressMessage( NOF.TEXT.MessageFormat.format( propertiesObj.getProperty('progressMessage.downloading'), (j+1), infoArr.length ) ) )
- if ( progDlg.setMessage( NOF.TEXT.MessageFormat.format( propertiesObj.getProperty('progressMessage.downloading'), (j+1), infoArr.length ) ) ) {
- return -1;
- }
- var thetype = infoArr[j].distribution.installType;
-
-
- if (thetype == 'full' || thetype == 'patch' || thetype == 'migrate') {
- doRestart = true;
- }
-
- if (thetype == 'full') {
- this.stayClosed = true;
- containsFullUpdate = true;
- }
-
- if (chosedMirror == null) {
- // suppose that the first mirror is the most reliable
- chosedMirror = infoArr[j].distribution.mirrors[0].name;
- }
-
- var path = "";
-
- for (var k=0; k < infoArr[j].distribution.mirrors.length; k++) {
- if ( chosedMirror.trim() == infoArr[j].distribution.mirrors[k].name ) {
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" chosedMirror="+chosedMirror+", url="+infoArr[j].distribution.mirrors[k].url);
- path = infoArr[j].distribution.mirrors[k].url;
- break;
- }
- }
-
- var localArgs = path.split('/');
- var localPath = NOF.App.getTempDirectory() + '\\' + localArgs[localArgs.length - 1];
-
-
- if ( (containsFullUpdate == true) && (infoArr.length > 1) ) {
- message( propertiesObj.getProperty('message.downloadingFullUpdate'), 'info', 'nof_update_downloadingFullUpdate', propertiesObj.getProperty('message.downloadingFullUpdate.addHeight') - 0, null, propertiesObj.getProperty('message.downloadingFullUpdate.title') );
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " download "+ path +" to "+localPath+", installType="+thetype);
-
- //if ( !this.app.HttpDownload(path, '', '', true, localPath, true) ) {
- var req = new NOF.NET.HttpRequest(path);
- var httpObj = new NOF.NET.Http(req);
- var downloadResult = httpObj.download(localPath, true);
- httpObj = null;
- req = null;
- if ( !downloadResult ) {
- if (j == 0) {
- // We didn't get any files.
- return 0;
- } else {
- // Update using the files we did get.
- break;
- }
- }
-
- // !! set here a new member - localURL!
- infoArr[j].distribution.localURL = localPath;
-
- count++;
-
- if (containsFullUpdate == true) {
- break;
- }
- }
-
- // ?
-
- if (doRestart && this.app.StringArg == 'Installer' && !containsFullUpdate) {
- doRestart = false;
- }
-
- // ?
-
- if (doRestart) {
- NOF.Session.setVariable("restartFusion", "true");
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " doRestart="+doRestart+", count="+count);
-
- var currentUpdate = this.regEditObj.get("CurrentUpdate", NOF.NOFSettings.INT_VALUE);
- var currentUpdateIndex = currentUpdate;
-
- if ( doRestart && (count > 0) ) {
- // write updater.txt
- // first line
- this.app.WriteTempFile(this.UPDATER_TXT_PARAM, count + ',' + /*this.app.AppDirectory*/ NOF.App.getExeLocation() + ',' + this.regEditObj.getRegistryBase() + '\n', false);
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " "+ count + ',' + this.app.AppDirectory + ',' + this.regEditObj.getRegistryBase() );
-
- // updates
- for (var j=0; j < count; j++) {
-
- currentUpdateIndex = (currentUpdate + j + 1);
-
- for (var k=0; k < infoArr[j].distribution.regEntries.length; k++) {
- if ( infoArr[j].distribution.regEntries[k].regName == "CurrentUpdate" ) {
- currentUpdateIndex = infoArr[j].distribution.regEntries[k].regValue;
- break;
- }
- }
-
- this.app.WriteTempFile(this.UPDATER_TXT_PARAM, currentUpdateIndex + "," + infoArr[j].distribution.installType + "," + infoArr[j].distribution.localURL + "," + infoArr[j].release.version+"."+infoArr[j].release.versionInfo+"."+infoArr[j].release.build + '\n', true);
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " "+currentUpdateIndex + "," + infoArr[j].distribution.installType + "," + infoArr[j].distribution.localURL + "," + infoArr[j].release.version+"."+infoArr[j].release.versionInfo+"."+infoArr[j].release.build);
- }
-
- this.app.CopyTempFile(NOF.App.getExeLocation() + 'UTUnpack.dll');
-
- var updaterPath = NOF.App.getExeLocation() + 'FSIUpdater\\Updater.zip';
- this.app2.ExtractZipFile(updaterPath, NOF.App.getTempDirectory());
- // if Updater.exe is not contained by the Updater.zip we could have
- // this.app.CopyTempFile(NOF.App.getExeLocation() + 'FSIUpdater\\Updater.exe');
-
- var latest = currentUpdateIndex;
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " latestUpdate = "+latest);
- //alert("control");
- //return 3;
- if (this.app.StringArg == 'Installer' && containsFullUpdate) {
- NOF.App.setVariable("InstallerParams", '/fusion="' + NOF.App.getExeLocation() + 'Fusion.exe"' + ' /input="' + NOF.App.getTempDirectory() + '\\'+this.UPDATER_TXT_PARAM+'" '+ currentUpdate+" "+ latest);
- }else{
- this.app.CallUpdater(NOF.App.getTempDirectory() + '\\Updater.exe', '/fusion="' + NOF.App.getExeLocation() + 'Fusion.exe"', '/input="' + NOF.App.getTempDirectory() + '\\'+this.UPDATER_TXT_PARAM+'"', currentUpdate, latest, '');
- }
- return 1;
-
- }
-
- for (var j=0; j < count; j++) {
-
- //if ( this.app.SetProgressMessage( NOF.TEXT.MessageFormat.format( propertiesObj.getProperty('progressMessage.installing'), (j+1), count ) ) )
- if ( progDlg.setMessage( NOF.TEXT.MessageFormat.format( propertiesObj.getProperty('progressMessage.installing'), (j+1), count ) ) ) {
- return -1;
- }
- var localPath = infoArr[j].distribution.localURL;
- var localArgs = localPath.split('\\');
- var thePath = NOF.App.getExeLocation() + localArgs[localArgs.length - 1];
- var s = thePath.split('.');
-
- if (s[s.length - 1] == 'zip') {
- if (!this.app2.ExtractZipFile(localPath, NOF.App.getExeLocation()))
- return 0;
- } else {
- this.app.CopyFileToBase(localPath); // The file must be executed in the base directory.
- if (this.app.Spawn(thePath, '/auto', NOF.App.getExeLocation(), '', '', '')) {
- this.app.DeleteFileFromBase(thePath);
- } else {
- this.app.DeleteFileFromBase(thePath);
- return 0;
- }
- }
-
- try {
-
- currentUpdateIndex = (currentUpdate + j + 1);
-
- for (var k=0; k < infoArr[j].distribution.regEntries.length; k++) {
- var prevUpdateKey = this.regEditObj.put(infoArr[j].distribution.regEntries[k].regName, infoArr[j].distribution.regEntries[k].regValue);
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " previousUpdateKey=" + prevUpdateKey + ", current key: " + infoArr[j].distribution.regEntries[k].regName + "=" + infoArr[j].distribution.regEntries[k].regValue + ", type=" + infoArr[j].distribution.regEntries[k].regType);
- }
-
- var prevRelease = this.regEditObj.put("Version", infoArr[j].release.version+"."+infoArr[j].release.versionInfo+"."+infoArr[j].release.build);
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " previousReleaseVersion=" + prevRelease + ", CurrentVersion=" + infoArr[j].release.version+"."+infoArr[j].release.versionInfo+"."+infoArr[j].release.build);
-
- } catch (e) {
- //alert( e.getMessage() );
- //NOF.util_logging_ConsoleLogger_global.warn(this.CLASS_NAME+"."+METHOD_NAME+ " "+e );
- }
- }
- try {
- //this.regEditObj.put("DateLastUpdate", Math.round( (new Date()).getTime()/1000) );
- this.setLastUpdateDate(new Date());
- } catch (edate){
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " "+edate );
- }
- return 3;
- }
-
-
- /**
- * getNeededReleases
- **/
- function getNeededReleases( iterRelease, chosedMirror ) {
- var METHOD_NAME = "getNeededReleases";
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " init");
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " release \r\n" + iterRelease.toString());
-
- if ( this.updatesChecked == false ) {
- if (this.checkUpdate() == -1)
- return new Array();
- }
-
- this.releasesString = [];
-
- this.iterateReleases(iterRelease, 0, "", 1);
-
- var min = 0;
- var path = "";
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+ " "+ this.releasesString.join("\n") +"\r\n\r\n\r\n");
-
- for (var u in this.releasesString) {
-
- if( u.indexOf(this.currentVersion) == (u.length - this.currentVersion.length) ) {
- if (min == 0 || this.releasesString[u] < min) {
- min = this.releasesString[u];
- path = u;
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" min sum = "+min+", path = "+path +"\r\n");
- }
- } else {
- continue;
- }
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" final result \r\n min sum = "+min+", path = "+path +"\r\n");
- var distribs = path.split("|");
-
- var releaseID, distrNo, distribution, release;
-
- var infoArr = [];
- var index = 0;
- var currentUpdate = this.regEditObj.get("CurrentUpdate", NOF.NOFSettings.INT_VALUE);
-
- for ( var i = distribs.length - 2; i > 0; i-- ) {
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" "+distribs[i]);
-
- releaseID = distribs[i].substring( 0, distribs[i].indexOf(":") );
- distrNo = distribs[i].substring( releaseID.length + 1 ) - 0;
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" releaseID="+releaseID);
-
- release = this.releases[this.getReleaseIndex(releaseID)];
- distribution = release.distributions[distrNo];
-
- infoArr[index] = new Object();
- infoArr[index].release = release;
- infoArr[index].distribution = distribution;
-
- index++;
- }
-
- return infoArr;
- }
-
-
- /*
- * checkUpdate
- */
- function checkUpdate() {
-
- var METHOD_NAME = "checkUpdate";
- if ( this.updatesChecked == true ) {
- return 0;
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" versionInfo="+this.versionInfo);
-
- var res = NOF.UTIL.ResourceBundle.getBundle("Update/UpdateProperties");
-
- var httpObj = new NOF.NET.Http(new NOF.NET.HttpRequest(this.AUTO_UPDATE_URL));
-
- //while ( this.app.OnlineMode(this.AUTO_UPDATE_URL, false) == 1 ) {
- while ( httpObj.isOnline(this.AUTO_UPDATE_URL, false) == 1 ) {
- /*
- if (window.showModalDialog("../Update/Offline.html", 0,
- "status:no;help:no;border:thin;dialogWidth:220px;dialogHeight:110px;center:yes;scroll:no;") == -1) {
- */
- if (!NOF.DIALOGS.Messages.warning(res.getProperty("label.offline"), null, null, res.getProperty("Offline.title"), res.getProperty("btn.retry"), res.getProperty("btn.cancel"), /*document.parentWindow*/ window, 290, 100)) {
- return -1;
- }
- }
-
- var xmldoc = null;
- xmldoc = NOF.XML.XmlDocument.create();
-
- if( xmldoc == null ) return -1; //THROW Error!
-
- xmldoc.async = false;
- xmldoc.validateOnParse = true;
-
- xmldoc.load( this.AUTO_UPDATE_URL );
-
- if (xmldoc.parseError.errorCode != 0) {
- //NOF.util_logging_ConsoleLogger_global.warn(this.CLASS_NAME+"."+METHOD_NAME+" "+xmldoc.parseError.reason+"\n"+"Source = Line : "+xmldoc.parseError.line+"; Char : "+xmldoc.parseError.linepos);
- return -1; //THROW Error!
- }
-
-
- var docUpdate = xmldoc.documentElement;
-
- // nodes and nodes list
- var nl_release, n_release, n_releaseNotes,
- nl_media, n_media, nl_location, n_location,
- n_requires, nl_requires, nl_regEntry, n_regEntry, n_regEntryValue;
-
- nl_release = docUpdate.getElementsByTagName("release");
-
- this.releases = new Array();
- var index = 0;
- var v, vI, b;
- //iterate releases
- for (var i=0; i < nl_release.length; i++) {
- n_release = nl_release.item(i);
-
- v = n_release.getAttribute("version");
- vI = n_release.getAttribute("versionInfo");
-
- // filter the nodes received and keep only those whose version are between
- // START_VERSION and END_VERSION
- if (this.START_VERSION > v || this.END_VERSION < v || vI != this.versionInfo) {
- continue;
- }
-
- var releaseObj = new this.Release();
-
- releaseObj.version = v;
- releaseObj.versionInfo = vI;
- releaseObj.build = n_release.getAttribute("build");
- releaseObj.releaseDate = n_release.getElementsByTagName("releaseDate").item(0).firstChild.nodeValue;
- releaseObj.summaryNotes = n_release.getElementsByTagName("summaryNotes").item(0).firstChild.nodeValue;
-
- n_releaseNotes = n_release.getElementsByTagName("releaseNotes").item(0);
- releaseObj.releaseNotesURL = n_releaseNotes.getAttribute("releaseURL");
-
- if (releaseObj.releaseNotesURL == null || releaseObj.releaseNotesURL.trim().length == 0) {
- //read notes from the CDATA child node
- releaseObj.releaseNotes = n_releaseNotes.firstChild.nodeValue;
- } else {
- //read notes from the specified URL
- //releaseObj.releaseNotes = this.app2.HttpRequest2( releaseObj.releaseNotesURL, '', '', true, false, true);
- releaseObj.releaseNotes = httpObj.open(new NOF.NET.HttpRequest(releaseObj.releaseNotesURL)).content;
- }
-
- nl_media = (n_release.getElementsByTagName("distribution").item(0)).getElementsByTagName("media");
-
- var mediaType, distribution, mirrors ; //downloadSize
-
- releaseObj.distributions = new Array(); //nl_media.length
- for (var j=0; j < nl_media.length; j++) {
- n_media = nl_media.item(j);
- mediaType = n_media.getAttribute("type");
- if ( mediaType == "CD" ) {
-
- nl_location = (n_media.getElementsByTagName("locations").item(0)).getElementsByTagName("location");
-
- releaseObj.mediaCD = new Array(nl_location.length);
- for (var k=0; k < nl_location.length; k++) {
- n_location = nl_location.item(k);
-
- releaseObj.mediaCD[k] = new Object();
- releaseObj.mediaCD[k].name = n_location.getElementsByTagName("name").item(0).firstChild.nodeValue;
- releaseObj.mediaCD[k].url = n_location.getElementsByTagName("url").item(0).firstChild.nodeValue;
- }
-
- } else if ( mediaType.toLowerCase() == "download" ) {
- distribution = new releaseObj.Distribution();
- // distribution is an obj corresponding to a <media type="download"> node
- distribution.installType = n_media.getElementsByTagName("installType").item(0).firstChild.nodeValue;
- distribution.downloadSize= n_media.getElementsByTagName("downloadSize").item(0).firstChild.nodeValue - 0;
-
- // if requires a previous update (is not a full type)
- nl_requires = n_media.getElementsByTagName("requires");
- if ( nl_requires != null && nl_requires.length > 0 ) {
- n_requires = nl_requires.item(0);
- distribution.requires = n_requires.getAttribute("version")+"."+
- n_requires.getAttribute("versionInfo")+"."+
- n_requires.getAttribute("build");
- } else {
- distribution.requires = null;
- }
- //regEntry
- nl_regEntry = n_media.getElementsByTagName("regEntry");
- var regEntries = new Array(nl_regEntry.length);
- for (var k=0; k < nl_regEntry.length; k++) {
- n_regEntry = nl_regEntry.item(k);
- regEntries[k] = new distribution.RegEntry();
- regEntries[k].base = n_regEntry.getAttribute("base");
- regEntries[k].regName = n_regEntry.getElementsByTagName("regName").item(0).firstChild.nodeValue.trim();
- n_regEntryValue = n_regEntry.getElementsByTagName("regValue").item(0);
- regEntries[k].regValue = n_regEntryValue.firstChild.nodeValue - 0;
- regEntries[k].regType = n_regEntryValue.getAttribute("type");
- }
-
- distribution.regEntries = regEntries;
-
- nl_location = (n_media.getElementsByTagName("locations").item(0)).getElementsByTagName("location");
-
- mirrors = new Array(nl_location.length);
- for (var k=0; k < nl_location.length; k++) {
- n_location = nl_location.item(k);
-
- mirrors[k] = new Object();
- mirrors[k].name = n_location.getElementsByTagName("name").item(0).firstChild.nodeValue.trim();
- mirrors[k].url = n_location.getElementsByTagName("url").item(0).firstChild.nodeValue.trim();
- }
-
- distribution.mirrors = mirrors;
-
- releaseObj.distributions[releaseObj.distributions.length] = distribution;
- }
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" release "+i+": \n"+releaseObj.toString() );
-
- this.releases[index++] = releaseObj; //this.releases.length
- }
-
- this.updatesChecked = true;
-
- try {
- //this.regEditObj.put("DataLastChecked", Math.round( (new Date()).getTime()/1000) );
- this.setLastCheckDate(new Date());
- } catch (edate){
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+".checkUpdate "+edate );
- }
- return 1;
- }
-
- /**
- * showReleaseNotes
- */
- function showReleaseNotes(version, vInfo, build, propertiesObj) {
- var METHOD_NAME = "showReleaseNotes";
- if (this.updatesChecked == false) {
- if ( this.checkUpdate() == -1 )
- return false;
- }
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" init: "+version + vInfo + build );
- var releaseObj = this.getRelease(version, vInfo, build);
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" release:\r\n"+ releaseObj.toString());
-
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME,
- '<html><head><title>'+propertiesObj.getProperty('releaseNotes.title')+'</title>' +
- '<link rel="stylesheet" type="text/css" href="'+ (NOF.App.getSystemDirectory() + NOF.App.getPathSeparator() + "Fsi") + '\\Update\\global.css">\r\n'+
- '<script language="javascript" src="../NetObjects System/FSI/lib/innovative/IS.js"></script>\r\n' +
- '<script language="javascript" src="../NetObjects System/FSI/lib/innovative/menu.js"></script>\r\n' +
- '<script language="JavaScript" src="../NetObjects System/FSI/lib/nof/NOF.js"></script>\r\n' +
- '<script language="JavaScript" src="../NetObjects System/FSI/lib/nof/ProgId.js"></script>\r\n' +
- '<script language="JavaScript">\r\n' +
- 'app = new ActiveXObject(NOF.ProgId.FSIApplication);\r\n' +
- 'function exit() { app.CloseDialog(true); }' +
- '\r\n</script>' +
- '</head><body><iframe src="' + ("frame" + this.RELEASE_NOTES_FILENAME) + '" align="center" width="'+(this.RELEASE_WINDOW_WIDTH - 50)+'" height="'+ (this.RELEASE_WINDOW_HEIGHT - 140) +'"></iframe>' ,
- false);
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<html><head><link rel="stylesheet" type="text/css" href="'+ (NOF.App.getSystemDirectory() + NOF.App.getPathSeparator() + "Fsi") + '\\Update\\global.css">\r\n</head><body>', false);
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<table class="updatesTable" cellpading="0" cellspacing="0" align="center" width="100%">', true);
-
- var versionI = version+"."+vInfo+"."+build;
- var newRelease = ( versionI > this.currentVersion );
- var strHead = "<tr><td ";
- if (newRelease) {
- strHead += 'width="25" class="availableUpdate"> </td><td colspan="2" class="availableUpdate" nowrap="true" height="25">';
- } else {
- strHead += 'width="25" class="updated"> </td><td colspan="2" class="updated" nowrap="true" height="25">';
- }
- strHead += "<b>" + propertiesObj.getProperty('label.version')+"</b>"+releaseObj.version+" <b>"+propertiesObj.getProperty('label.released')+"</b>"+releaseObj.releaseDate;
- if ( this.isDuplicateVersion( releaseObj ) ) {
- strHead += " <b>"+propertiesObj.getProperty('label.build')+"</b>"+releaseObj.build;
- }
- strHead += "</td></tr>";
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, strHead, true);
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, "<tr><td width=\"25\" class=\""+ ( (newRelease) ? "a" : "notA" ) +"vailableSummary\"> </td><td class=\""+ ( (newRelease) ? "a" : "notA" ) +"vailableSummary\">"+releaseObj.releaseNotes+"</td><td width=\"25\" class=\""+ ( (newRelease) ? "a" : "notA" ) +"vailableSummary\"> </td></tr>", true);
-
- //this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, releaseObj.releaseNotes, true);
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '</table>', true);
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '</body></html>', true);
-
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '<p align="center"><input type="button" value="'+ propertiesObj.getProperty('close') +'" onclick="exit()"></p>', true);
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '</body></html>', true);
-
- //this.app2.OpenBrowser(NOF.App.getTempDirectory() + '\\'+this.RELEASE_NOTES_FILENAME, '', this.RELEASE_WINDOW_WIDTH, this.RELEASE_WINDOW_HEIGHT);
- NOF.DIALOGS.BrowserDlg.openBrowser(NOF.App.getTempDirectory() + '\\'+this.RELEASE_NOTES_FILENAME, '', this.RELEASE_WINDOW_WIDTH, this.RELEASE_WINDOW_HEIGHT, true);
- NOF.App.deleteTempDirectory();
- }
-
- /**
- * showPreviousReleaseNotes
- */
- function showPreviousReleaseNotes(version/*, vInfo, build*/, propertiesObj, ascending) {
- var METHOD_NAME = "showPreviousReleaseNotes";
-
- if (this.updatesChecked == false) {
- if ( this.checkUpdate() == -1 )
- return false;
- }
- if ( version == null ) {
- version = this.currentVersion;
- }
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" init: "+version );
- var currentReleaseIndex = this.getReleaseIndex(version);
- if (currentReleaseIndex < 0) {
- //this must be an update not listed in xml
- for (var i = this.releases.length - 1; i >= 0; i--) {
- if ( version > (this.releases[i].version+"."+this.releases[i].versionInfo+"."+this.releases[i].build) ) {
- currentReleaseIndex = i;
- break;
- }
- }
- }
-
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME,
- '<html><head><title>'+propertiesObj.getProperty('releaseNotes.title')+'</title>' +
- '<link rel="stylesheet" type="text/css" href="'+ (NOF.App.getSystemDirectory() + NOF.App.getPathSeparator() + "Fsi") + '\\Update\\global.css">\r\n'+
- '<script language="javascript" src="../NetObjects System/FSI/lib/innovative/IS.js"></script>\r\n' +
- '<script language="JavaScript" src="../NetObjects System/FSI/lib/nof/NOF.js"></script>\r\n' +
- '<script language="JavaScript" src="../NetObjects System/FSI/lib/nof/ProgId.js"></script>\r\n' +
- '<script language="JavaScript">\r\n' +
- 'app = new ActiveXObject(NOF.ProgId.FSIApplication);' +
- 'function exit() { app.CloseDialog(true); }' +
- '\r\n</script>' +
- '</head><body><iframe src="' + ("frame" + this.RELEASE_NOTES_FILENAME) + '" align="center" width="'+(this.RELEASE_WINDOW_WIDTH - 50)+'" height="'+ (this.RELEASE_WINDOW_HEIGHT - 140) +'"></iframe>' ,
- false);
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<html><head><link rel="stylesheet" type="text/css" href="'+ (NOF.App.getSystemDirectory() + NOF.App.getPathSeparator() + "Fsi") + '\\Update\\global.css">\r\n</head><body>', false);
-
- /*
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME,
- '<p><b>'+propertiesObj.getProperty("label.completedUpdates")+'</b></p>\n',
- true);
- */
-
- if ( (ascending == null) || (ascending == 'undefined') ) {
- ascending = false;
- }
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<table class="updatesTable" cellpading="0" cellspacing="0" align="center" width="100%" >', true);
-
- var iterRelease;
- var strHead;
-
- var i = (ascending == true) ? 0 : currentReleaseIndex;
- var available = true;
- var clsNamePrefix = null;
-
- //while (true) {
- for( ; ; ) {
- if ( (ascending == true) && (i > currentReleaseIndex) ) {
- break;
- }
- if ( (ascending == false) && (i < 0) ) {
- break;
- }
-
- iterRelease = this.getRelease(i);
- //
- strHead = "<b>" + propertiesObj.getProperty('label.version')+"</b>"+iterRelease.version+" <b>"+propertiesObj.getProperty('label.released')+"</b>"+iterRelease.releaseDate;
- if ( this.isDuplicateVersion( iterRelease ) ){
- strHead += " <b>"+propertiesObj.getProperty('label.build')+"</b>"+iterRelease.build;
- }
- clsNamePrefix = (available) ? "a" : "notA";
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<tr><td class="'+ clsNamePrefix +'vailableUpdate" width="25"> </td><td class="'+ clsNamePrefix +'vailableUpdate" nowrap="true" height="25">'+ strHead +'</td><td class="'+ clsNamePrefix +'vailableUpdate" width="25"> </td></tr>', true);
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<tr><td width="25" class="'+ clsNamePrefix +'vailableSummary"> </td><td class="'+ clsNamePrefix +'vailableSummary" valign="top">' + iterRelease.releaseNotes + '</td><td width="25" class="'+ clsNamePrefix +'vailableSummary"> </td></tr>', true);
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<tr><td colspan="3" width="100%" class="between"> </td></tr>', true);
-
- if (ascending == true) {
- i++;
- } else {
- i--;
- }
-
- available = !available;
- }
-
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '<tr><td colspan="3" width="100%" class="between"> </td></tr>', true);
- this.app.WriteTempFile("frame" + this.RELEASE_NOTES_FILENAME, '</table></body></html>', true);
-
-
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '<table class="updatesTable" cellpading="0" cellspacing="0" align="center" width="100%" >', true);
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '<tr><td class="between" align="center"> </td></tr>'+
- '<tr><td width="100%" class="between" align="center"><input type="button" value="'+ propertiesObj.getProperty('close') +'" onclick="exit()"></td></tr>', true);
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '</table>', true);
-
- this.app.WriteTempFile(this.RELEASE_NOTES_FILENAME, '</body></html>', true);
-
- //this.app2.OpenBrowser(NOF.App.getTempDirectory() + '\\'+this.RELEASE_NOTES_FILENAME, '', this.RELEASE_WINDOW_WIDTH, this.RELEASE_WINDOW_HEIGHT);
- NOF.DIALOGS.BrowserDlg.openBrowser(NOF.App.getTempDirectory() + '\\'+this.RELEASE_NOTES_FILENAME, '', this.RELEASE_WINDOW_WIDTH, this.RELEASE_WINDOW_HEIGHT, true);
- NOF.App.deleteTempDirectory();
- }
-
- /**
- * getNumberOfReleases
- */
- function getNumberOfReleases() {
- var METHOD_NAME = "getNumberOfReleases";
- var relNo = this.releases.length;
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" returns "+ relNo );
- return relNo;
- }
-
- /**
- * isDuplicateVersion
- */
- function isDuplicateVersion( iterRelease ) {
- var METHOD_NAME = "isDuplicateVersion";
- for (var i=0; i < this.releases.length; i++) {
- if ( (iterRelease.version == this.releases[i].version) && (iterRelease.versionInfo == this.releases[i].versionInfo) &&
- (iterRelease.build != this.releases[i].build) ) {
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * downloadRelease
- * @param release - release's full update to be downloaded
- * @param distribLocation - mirror server ID
- * @param propertiesObj - properties object to get labels used for user information
- */
- function downloadRelease( release, distribLocation, propertiesObj ) {
- var METHOD_NAME = "downloadRelease";
- var downloadResult = 0;
- var localPath = (new NOF.DIALOGS.FileDlg()).selectDirectory();
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" localPath = "+localPath+" \r\n "+distribLocation+"\r\n"+release.toString());
- if (localPath.length > 0) {
- var fullUpdateURL = null;
-
- for (var i=0; i < release.distributions.length; i++) {
- if (release.distributions[i].installType == "full") {
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" we have full installType");
-
- for (var j = 0; j < release.distributions[i].mirrors.length; j++) {
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" release.distributions["+i+"].mirrors["+j+"].name = "+release.distributions[i].mirrors[j].name);
- if (release.distributions[i].mirrors[j].name == distribLocation) {
- fullUpdateURL = release.distributions[i].mirrors[j].url;
- break;
- }
- }
- if (fullUpdateURL != null)
- break;
- }
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" fullUpdateURL = "+fullUpdateURL);
-
- var fullUpdateName = fullUpdateURL.substring(fullUpdateURL.lastIndexOf("/")+1, fullUpdateURL.length);
- localPath += fullUpdateName;
-
- var localPathStr = localPath;
-
- var maxLengthProgressDlgCanDisplay = propertiesObj.getProperty('maxMessageLengthInProgressDlg') - 0; //42;
- if ( (propertiesObj.getProperty('savingUpdate') + " " + localPathStr).length > maxLengthProgressDlgCanDisplay ) {
- var i1 = maxLengthProgressDlgCanDisplay - propertiesObj.getProperty('savingUpdate').length - 1;
- var i2 = i1 - fullUpdateName.length - propertiesObj.getProperty('points').length - 1;
- localPathStr = localPathStr.substring(0, i2) + propertiesObj.getProperty('points') + "\\" + fullUpdateName;
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" localPath = "+localPath);
-
- //this.app.OpenProgressDialog( propertiesObj.getProperty('downloading'), propertiesObj.getProperty('savingUpdate') + " " + localPathStr, 0, 0, true);
- var progDlg = new NOF.DIALOGS.ProgressDlg();
- progDlg.open(propertiesObj.getProperty('downloading'), propertiesObj.getProperty('savingUpdate') + " " + localPathStr, 0, 100, true);
- //downloadResult = this.app.HttpDownload(fullUpdateURL, '', '', true, localPath, true);
- var req = new NOF.NET.HttpRequest(fullUpdateURL); //req.setIncludeHeaderResult(true); //req.setIncludeBodyResult(false);
- var httpObj = new NOF.NET.Http(req);
- downloadResult = httpObj.download(localPath, true);
- httpObj = null;
-
- progDlg.close(0);
- progDlg = null;
- //this.app.CloseProgressDialog(0);
- if (downloadResult) {
- NOF.App.setVariable("nof_update_lastDownloadRelease", release.version+"."+release.versionInfo+"."+release.build );
- }
-
- //NOF.util_logging_ConsoleLogger_global.info(this.CLASS_NAME+"."+METHOD_NAME+" at end, result: "+downloadResult);
-
- }
- return downloadResult;
- }
-
- /**
- * getAvailableUpdatesType
- */
- function getAvailableUpdatesType( ) {
- var METHOD_NAME = "getAvailableUpdatesType";
- var ret = 0;
-
- var doRestart = false;
- var containsFullUpdate = false;
- var thetype;
-
- if ( this.isUpdateNeeded() == false ) {
- return 0;
- }
-
- var infoArr = this.getNeededReleases( this.getLatestRelease(), null );
- if ( infoArr.length == 0 ) {
- return 0;
- }
-
- for (var j=0; j < infoArr.length; j++) {
-
- var thetype = infoArr[j].distribution.installType;
-
- //NOF.util_logging_ConsoleLogger_global.info( this.CLASS_NAME+"."+METHOD_NAME+" "+ j + ", thetype = "+thetype );
-
- if (thetype == 'full' || thetype == 'patch' || thetype == 'migrate') {
- doRestart = true;
- if (thetype == 'full') {
- containsFullUpdate = true;
- break;
- }
- }
- }
-
- if ( containsFullUpdate ) {
- ret = 1;
- } else if ( doRestart ) {
- ret = 2;
- } else {
- ret = 3;
- }
-
- return ret;
- }
-
- }
-
-
- NOF_Update_ProtoBuilder();
-
- NOF.UPDATE.__proto__.Updater = NOF_Update;
-
- //NOF.addVariable("Update.CHECK_ON_LOAD", 0);
- //NOF.addVariable("Update.CHECK_ON_CONNECT", 1);
- }